\(RandomWalk2D[n_]\  := 
	
      FoldList[Plus, \ {0, 0}, \ 
		
        Table[\(\((Random[] {Cos[#], Sin[#]})\)&\)[2  N[Pi] Random[]], {n}]

        	]\)

RandomWalk2D[10]

ListPlot[RandomWalk2D[40],  PlotJoined  ->  True];

fromto  =  N[{0,  2  Pi}]\(randomstep\  := \ 
      With[{dir\  = \ Random[Real, fromto]}, \ {Cos[dir], \ Sin[dir]}]
\)\(randomwalk2D[n_Integer, \ opts___?OptionQ]\  := 
	
      Module[{points}, 
		
        points\  = \ NestList[\ #\  + \ randomstep\ &, \ {0, \ 0}, \ n\ ]; 

        		Show[\ Graphics[{Point[{0, \ 0}], \ Line[points]}], \ opts, 

          		\ \ \ \ \ \ Frame\  -> \ True, \ FrameTicks\  -> \ Automatic, \ 
          AspectRatio\  -> \ 1\ ]	]
\)

\(\(randomwalk2D[n_Integer, \ opts___?OptionQ]\  := 
	
      Module[{fromto\  = \ N[{0, \ 2  Pi}], \ di, \ randomstep, \ points, 
          \ }, 
		di := Random[Real, fromto]; 
		
        randomstep\  := \ {Cos[di], \ Sin[di]}; 
		
        points\  = \ NestList[\ #\  + \ randomstep\ &, \ {0, \ 0}, \ n\ ]; 

        		Show[\ Graphics[{Point[{0, \ 0}], \ Line[points]}], \ opts, 

          		\ \ \ \ \ \ Frame\  -> \ True, \ FrameTicks\  -> \ Automatic, \ 
          AspectRatio\  -> \ 1\ ]	]
\)\)

randomwalk2D[15,  GridLines -> Automatic,  
      FrameLabel -> 
        "Ôõxáßïò  \
Ðåñßðáôï\
ò"]

Clear["`*"]

\(RandomWalk2[s_List: {0, 0}, n_Integer:  40, \ b_Function: \((True&)\)]\ 
       := 
\((walk\  = \ {s}; k\  = \ 0; 
	
        While[
		b[walk] && k < n, 
		\(++k\); 
		
          walk\  = \ 

            			{walk, \ 
				
              Last[walk]\  + \ 
				
                \((\(Random[]\ \((#/Sqrt[#.#])\)&\)[
                    \(Random[Real, {\(-1\), 1}]&\)/@s])\)
			}
	]; 
	
        Partition[Flatten[walk], Length[s]]
)\)\)

\(RandomWalkND[start_List: {0, 0}, 

        	\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 
        maxn_Integer:  40, 

        	\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 
        nostop_Function: \((True&)\)]\  := 

      Module[{walk\  = \ {start}, \ k\  = \ 0, \ ls = Length[start]}, 
	
        While[nostop[walk] && k < maxn, 
		\(++k\); 
          walk\  = \ 

            			{walk, 
              Last[walk]\  + \ 
				
                \((\(Random[]\ \((#/Sqrt[#.#])\)&\)\ 
					\ \ \ \ [
                    Table[Random[Real, {\(-1\), 1}], {ls}]\ ])\)\ }	]; 
	
        Partition[Flatten[walk], ls]]\)

RandomWalkND[{0, 0, 0}, 10]

Show[Graphics3D[Line[RandomWalkND[{0, 0, 0}, 30]]], Boxed -> True, 
      Axes -> True]

Random[Real, {-1, 1}]& /@ {0, 0, 0}

Table[Random[Real, {-1, 1}], {3}]